The present invention relates to computerized control systems and, more particularly, distributed control systems that employ multiple, distinct control devices that are connected to one another by way of a network and that interact with one another in a manner allowing for overall control of a process.
A variety of commercial and industrial processes can be automated using one or more industrial controllers (or industrial computers). Generally, an industrial controller is a specialized computer providing input/output (I/O) circuitry attached to sensors and actuators on the machines of the industrial process. The industrial controller executes a control program to read inputs from sensors on the machines implementing the process, and based on the values of those inputs and control logic of the control program, produces outputs to actuators to control the process. Industrial controllers are frequently modular in construction, so that the number of input and output circuits and the processor power can be tailored to the demands of the particular process.
Although complicated processes can be controlled using a single controller, distributed control by way of multiple controllers is advantageous over central control for a variety of reasons. In particular, distributed control systems can be more robust than central control systems in terms of being able to sustain the failure of a particular controller. Additionally, distributed control systems can be less costly to program and less demanding in terms of communication bandwidth since not all messages need be provided to a single central controller.
Recently, distributed control systems employing multiple intelligent agents, which also can be termed agents or autonomous cooperative units (ACUs), at multiple distributed controllers have generated interest. In such multi-agent systems (which also can be termed autonomous cooperative systems), a job description is presented to a large number of agents. The agents, based on knowledge of their own capabilities and limitations, bid on portions of the job in response to requests for bids from other agents. Effectively, the agents execute their own program, such that control programs are simply developed and the potential exists for control programs to be quickly changed as new circumstances develop, such as changes in the control problem or the loss of particular agents and/or equipment. Such multi-agent systems are applicable to a wide variety of situations, and a description of one exemplary multi-agent system is described, for example, in certain of the aforementioned patent applications.
Although multi-agent distributed control systems offer many advantages, multi-agent distributed control systems are difficult to monitor while in operation. This is due at least in part to the variation in agents and their responsibilities within such control systems, the large numbers of messages that are typically sent among the agents of such systems, and the complexity of both the messages and the agents' functions. Further, in part because of the difficulty in monitoring multi-agent systems, it also is difficult to determine how system operation can be improved or adjusted to meet new or changed goals, and consequently difficult to control/modify the operation of such systems to achieve such new or changed goals (e.g., to “deploy” or “redeploy” the agents), either in real-time or off-line. Additionally, it can be difficult to debug multi-agent systems, either while those systems are operating or when the systems have stopped operating.